package com.itheima.package1_threadpool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/*
线程池:
    线程的反复创建和销毁对系统资源的开销是比较大的
    线程池维护一些处于存活状态的线程:
        有任务需要处理的时候,创建线程对象,执行完毕,线程对象归还池子
        在后续处理任务的过程中,每次都会先判断池子中是否有空闲的线程,有复用,没有再新建
 */
public class Demo2_newFixedThreadPool {
    public static void main(String[] args) throws InterruptedException {
        //通过Executors获取默认的线程池,返回一个ExecutorService对象
        ExecutorService pool = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            pool.submit(()-> System.out.println(Thread.currentThread().getName()+"开始了"));
        }
        /*//ExecutorService对象提交任务
        pool.submit(()-> System.out.println(Thread.currentThread().getName()+"开始了"));
        Thread.sleep(100);//让线程有足够的时间返还
        //创建线程并将使用完的线程归还池子,自动完成
        pool.submit(()-> System.out.println(Thread.currentThread().getName()+"结束了"));*/
//        pool.shutdown();手动调用方法停止池子,默认存活一分钟
    }
}
